package logica_de_presentacion;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import comun.Serie;
import logica_de_negocio.ExcepDeleteOnCascade;
import logica_de_negocio.FaltanDatosEnLaBaseDeDatos;
import logica_de_negocio.gestorSerie;

public class FormularioBorrarSeriePorTitulo extends JInternalFrame implements
		ActionListener {

	private static final long serialVersionUID = 1L;
	protected JComboBox<String> jcTitulo;
	protected JButton borrar, cancelar;
	private String titulo;
	private String[][] id_titulo;

	public FormularioBorrarSeriePorTitulo() throws ClassNotFoundException {

		super("Buscar Serie por titulo", true, true, true, true);
		this.setVisible(true);
		this.getContentPane().setLayout(new BorderLayout());
		JPanel pBotones = new JPanel();

		// BORRAR
		ImageIcon imagenBorrar = createImageIcon("/logica_de_presentacion/imagenes/BORRAR.gif");
		borrar = new JButton("Borrar", imagenBorrar);
		borrar.addActionListener(this);
		pBotones.add(borrar);

		// CANCELAR
		ImageIcon imagenCancelar = createImageIcon("/logica_de_presentacion/imagenes/CANCELAR.gif");
		cancelar = new JButton("Cancelar", imagenCancelar);
		cancelar.addActionListener(this);
		pBotones.add(cancelar, "South");

		// BOTONES
		this.getContentPane().add(pBotones, BorderLayout.SOUTH);
		jcTitulo = new JComboBox<String>(getTitulos());

		this.getContentPane().add(jcTitulo, BorderLayout.CENTER);
		JLabel jl = new JLabel("Indique el titulo de la Serie a borrar");
		this.getContentPane().add(jl, BorderLayout.NORTH);

		this.pack();

	}

	private String [] getTitulos() throws ClassNotFoundException {
		gestorSerie gs = new gestorSerie();
		id_titulo=gs.getTitulo();
		String[] titulos=new String[id_titulo.length];
		for(int i=0; i<id_titulo.length;i++){
			titulos[i]=id_titulo[i][1];
		}
		return titulos;
	}
	@Override
	public void actionPerformed(ActionEvent e) {

		JButton BotonPulsado = (JButton) e.getSource();

		if (BotonPulsado == cancelar) {
			this.dispose();
		}
		if (BotonPulsado == borrar) {
			titulo = (String) jcTitulo.getSelectedItem();
			gestorSerie gs=new gestorSerie();
			Serie s;
			try {
				s = gs.getSerie(titulo);
				boolean bor=false;
				try {
					bor=gs.borrar(s.getId_s(), new ExcepDeleteOnCascade());
				} catch (ExcepDeleteOnCascade e1) {
					
					int res=JOptionPane.showConfirmDialog(new Frame(), "Esta serie contien capitulos o/y usuarios la sigues y/o sus capitulos han sido valorados,\nDesea borrar todo?");
					if(res==0){
						e1.setAceptado(true);
						try {
							bor=gs.borrar(s.getId_s(), e1);
						} catch (ExcepDeleteOnCascade e2) {	}
					}
				}
				if(bor){
					JOptionPane.showMessageDialog(new Frame(), "Se ha borrado la serie");
				}else{
					JOptionPane.showMessageDialog(new Frame(), "Se _NO_ ha borrado la serie");
				}
				
			} catch (FaltanDatosEnLaBaseDeDatos e1) {
				JOptionPane.showMessageDialog(new Frame(), e1.getFalta());
			} catch (ClassNotFoundException e3) {
				JOptionPane.showMessageDialog(new Frame(),
						"No hay informacion en la base de datos");
				this.dispose();
			}
			this.dispose();
		}
	}

	/** Returns an ImageIcon, or null if the path was invalid. */
	protected static ImageIcon createImageIcon(String path) // ICONO
	{
		java.net.URL imgURL = Button.class.getResource(path);
		if (imgURL != null) {
			return new ImageIcon(imgURL);
		} else {
			System.err.println("Couldn't find file: " + path);
			return null;
		}
	}
}
